import request from '@/utils/request'

/**
 * 搜索问题
 * @param {Object} params - 请求参数
 * @param {string} params.keyword - 关键词
 * @param {number} [params.current=1] - 当前页码
 * @param {number} [params.size=10] - 每页大小
 * @param {number} [params.sort=1] - 排序方式(1-默认，2-最新，3-最热)
 * @returns {Promise}
 */
export function searchQuestions(params) {
  return request({
    url: '/search/questions',
    method: 'get',
    params
  })
}

/**
 * 搜索用户
 * @param {Object} params - 请求参数
 * @param {string} params.keyword - 关键词
 * @param {number} [params.current=1] - 当前页码
 * @param {number} [params.size=10] - 每页大小
 * @returns {Promise}
 */
export function searchUsers(params) {
  return request({
    url: '/search/users',
    method: 'get',
    params
  })
}

/**
 * 获取热门搜索关键词
 * @param {number} [limit=10] - 返回数量
 * @returns {Promise}
 */
export function getHotKeywords(limit = 10) {
  return request({
    url: '/search/hot-keywords',
    method: 'get',
    params: { limit }
  })
}

/**
 * 保存搜索历史
 * @param {string} keyword - 关键词
 * @param {number} [type=1] - 搜索类型(1-问题, 2-用户)
 * @returns {Promise}
 */
export function saveSearchHistory(keyword, type = 1) {
  return request({
    url: '/search/history',
    method: 'post',
    params: { keyword, type }
  })
}

/**
 * 获取用户搜索历史
 * @param {number} [limit=10] - 返回数量
 * @returns {Promise}
 */
export function getSearchHistory(limit = 10) {
  return request({
    url: '/search/history',
    method: 'get',
    params: { limit }
  })
}

/**
 * 清空搜索历史
 * @returns {Promise}
 */
export function clearSearchHistory() {
  return request({
    url: '/search/history',
    method: 'delete'
  })
}

/**
 * 综合搜索
 * @param {Object} params - 请求参数
 * @param {string} params.keyword - 关键词
 * @param {number} [params.current=1] - 当前页码
 * @param {number} [params.size=5] - 每页大小
 * @returns {Promise}
 */
export function searchAll(params) {
  return request({
    url: '/search/all',
    method: 'get',
    params
  })
}

/**
 * 获取相关标签
 * @param {string} keyword - 关键词
 * @param {number} [limit=5] - 返回数量
 * @returns {Promise}
 */
export function searchRelatedTags(keyword, limit = 5) {
  return request({
    url: '/search/tags',
    method: 'get',
    params: { keyword, limit }
  })
}

/**
 * 获取搜索建议
 * @param {string} keyword - 关键词
 * @param {number} [limit=5] - 返回数量
 * @returns {Promise}
 */
export function getSearchSuggestions(keyword, limit = 5) {
  return request({
    url: '/search/suggest',
    method: 'get',
    params: { keyword, limit }
  })
}

/**
 * 高级搜索
 * @param {Object} params - 请求参数
 * @param {string} params.keyword - 关键词
 * @param {string} [params.tags] - 标签，多个用逗号分隔
 * @param {number} [params.userId] - 用户ID
 * @param {string} [params.startDate] - 开始日期
 * @param {string} [params.endDate] - 结束日期
 * @param {number} [params.minViews] - 最小浏览数
 * @param {number} [params.minAnswers] - 最小回答数
 * @param {number} [params.current=1] - 当前页码
 * @param {number} [params.size=10] - 每页大小
 * @param {number} [params.sort=1] - 排序方式(1-默认，2-最新，3-最热，4-最多回答，5-最多点赞)
 * @returns {Promise}
 */
export function advancedSearch(params) {
  return request({
    url: '/search/advanced',
    method: 'get',
    params
  })
}

/**
 * 清除搜索缓存 (仅管理员)
 * @param {number} [type=1] - 缓存类型(1-全部, 2-问题搜索, 3-热词, 4-搜索建议)
 * @returns {Promise}
 */
export function clearSearchCache(type = 1) {
  return request({
    url: '/search/cache',
    method: 'delete',
    params: { type }
  })
}

/**
 * AI智能搜索问题
 * @param {Object} params - 请求参数
 * @param {string} params.query - 搜索查询语句
 * @param {number} [params.limit=5] - 返回结果数量
 * @returns {Promise}
 */
export function aiSearchQuestions(params) {
  return request({
    url: '/search/ai/questions',
    method: 'get',
    params
  })
}

/**
 * 获取AI回答建议
 * @param {number} questionId - 问题ID
 * @returns {Promise}
 */
export function getAnswerSuggestion(questionId) {
  return request({
    url: `/search/ai/answer-suggestion/${questionId}`,
    method: 'get'
  })
}

/**
 * 获取AI相似问题建议
 * @param {string} keyword - 关键词
 * @param {number} [limit=5] - 返回数量
 * @returns {Promise}
 */
export function getSimilarQuestions(keyword, limit = 5) {
  return request({
    url: '/search/ai/similar-questions',
    method: 'get',
    params: { keyword, limit }
  })
}

/**
 * AI分析搜索意图
 * @param {string} query - 搜索查询语句
 * @returns {Promise}
 */
export function analyzeSearchIntent(query) {
  return request({
    url: '/search/ai/analyze-intent',
    method: 'get',
    params: { query }
  })
} 